package com.hesicare.health.service;

import com.hesicare.cgm.entity.CgmPatientDTO;
import com.hesicare.health.entity.SysPatient;

import java.util.List;

public interface ISysPatientService {

    /**
     * 新增患者接口
     *
     * @param: SysPatient 对象
     * @return:
     * @author: 55097
     * @date: 2022/1/7
     */
    void insertSysPatient(SysPatient sysPatient);

    /**
     * 更新患者接口
     *
     * @param: SysPatient 对象
     * @return:
     * @author: 55097
     * @date: 2022/1/7
     */
    void updateSysPatient(SysPatient sysPatient);

    /**
     * 根据住院号查询患者信息接口
     *
     * @param: hospitalizedNum 住院号
     * @return: SysPatient 患者对象
     * @author: 55097
     * @date: 2022/1/7
     */
    SysPatient selectSysPatientByHospitalizedNum(String hospitalizedNum);

    /**
     * 根据his_patient_id 查询患者信息接口
     *
     * @param: hisPaitentId 患者在his系统主键id
     * @return: SysPatient 患者对象
     * @author: 55097
     * @date: 2022/1/7
     */
    SysPatient selectSysPatientByHisPatientId(String hisPaitentId);

    /**
     * 查询所有在院患者的his_patient_id集合
     *
     * @param:
     * @return: his_patient_id 集合
     * @author: 55097
     * @date: 2022/1/7
     */
    List<String> selectHisPatientIdByHospitalType();

    /**
     * 查询所有在院患者的住院号集合
     *
     * @param:
     * @return: 患者住院号集合
     * @author: 55097
     * @date: 2022/1/7
     */
    List<SysPatient> selectHospitalNumByHospitalType();

    /**
     * 查询CGM患者集合
     *
     * @param:
     * @return: CGM患者集合
     * @author: 55097
     * @date: 2022/1/7
     */
    List<CgmPatientDTO> selectSysPatientBybindingStatus();

    /**
     * 根据his废弃患者集合，新增出院记录接口
     *
     * @param: his废弃患者集合
     * @return:
     * @author: 55097
     * @date: 2022/1/7
     */
    void updateHisPatientByhospitalizedType(List<String> patientIds);

}
